/** @file
 *  @brief MAVLink comm protocol generated from fppa.xml
 *  @see http://mavlink.org
 */
#pragma once
#ifndef MAVLINK_FPPA_H
#define MAVLINK_FPPA_H

#ifndef MAVLINK_H
    #error Wrong include order: MAVLINK_FPPA.H MUST NOT BE DIRECTLY USED. Include mavlink.h from the same directory instead or set ALL AND EVERY defines from MAVLINK.H manually accordingly, including the #define MAVLINK_H call.
#endif

#undef MAVLINK_THIS_XML_IDX
#define MAVLINK_THIS_XML_IDX 0

#ifdef __cplusplus
extern "C" {
#endif

// MESSAGE LENGTHS AND CRCS

#ifndef MAVLINK_MESSAGE_LENGTHS
#define MAVLINK_MESSAGE_LENGTHS {}
#endif

#ifndef MAVLINK_MESSAGE_CRCS
#define MAVLINK_MESSAGE_CRCS {{0, 125, 111, 0, 0, 0}, {11, 143, 41, 0, 0, 0}, {12, 105, 185, 0, 0, 0}, {13, 11, 36, 0, 0, 0}, {14, 174, 85, 0, 0, 0}, {15, 165, 72, 0, 0, 0}, {16, 220, 44, 0, 0, 0}, {17, 3, 16, 0, 0, 0}, {18, 204, 44, 0, 0, 0}, {19, 38, 88, 0, 0, 0}, {20, 219, 116, 0, 0, 0}, {21, 196, 112, 0, 0, 0}, {22, 107, 208, 0, 0, 0}, {23, 215, 172, 0, 0, 0}, {24, 156, 148, 0, 0, 0}, {25, 223, 144, 0, 0, 0}, {26, 81, 240, 0, 0, 0}, {27, 158, 240, 0, 0, 0}, {28, 126, 240, 0, 0, 0}, {29, 237, 240, 0, 0, 0}, {30, 138, 240, 0, 0, 0}, {31, 2, 58, 0, 0, 0}, {32, 43, 29, 0, 0, 0}, {33, 169, 154, 0, 0, 0}, {34, 228, 20, 0, 0, 0}, {170, 121, 44, 0, 0, 0}, {171, 252, 112, 0, 0, 0}, {172, 74, 3, 0, 0, 0}, {173, 170, 29, 0, 0, 0}, {174, 58, 30, 0, 0, 0}, {175, 239, 108, 0, 0, 0}, {180, 230, 18, 0, 0, 0}, {200, 28, 30, 0, 0, 0}, {201, 109, 39, 0, 0, 0}, {202, 163, 25, 0, 0, 0}, {203, 233, 27, 0, 0, 0}, {250, 183, 32, 0, 0, 0}, {251, 76, 109, 0, 0, 0}, {255, 119, 140, 0, 0, 0}}
#endif

#include "../protocol.h"

#define MAVLINK_ENABLED_FPPA
#define MAVLINK_USE_MESSAGE_INFO

// ENUM DEFINITIONS


/** @brief  */
#ifndef HAVE_ENUM_MAV_STATE
#define HAVE_ENUM_MAV_STATE
typedef enum MAV_STATE
{
   MAV_STATE_UNINIT=0, /* Uninitialized system, state is unknown. | */
   MAV_STATE_BOOT=1, /* System is booting up. | */
   MAV_STATE_CALIBRATING=2, /* System is calibrating and not flight-ready. | */
   MAV_STATE_STANDBY=3, /* System is grounded and on standby. It can be launched any time. | */
   MAV_STATE_ACTIVE=4, /* System is active and might be already airborne. Motors are engaged. | */
   MAV_STATE_CRITICAL=5, /* System is in a non-normal flight mode. It can however still navigate. | */
   MAV_STATE_EMERGENCY=6, /* System is in a non-normal flight mode. It lost control over parts or over the whole airframe. It is in mayday and going down. | */
   MAV_STATE_POWEROFF=7, /* System just initialized its power-down sequence, will shut down now. | */
   MAV_STATE_ENUM_END=8, /*  | */
} MAV_STATE;
#endif

/** @brief  */
#ifndef HAVE_ENUM_MAN_CTRL_COM_MODE
#define HAVE_ENUM_MAN_CTRL_COM_MODE
typedef enum MAN_CTRL_COM_MODE
{
   MCCM_DYNAMIC=0, /* dynamic communication. | */
   MCCM_STATIC=1, /* static communication. | */
   MAN_CTRL_COM_MODE_ENUM_END=2, /*  | */
} MAN_CTRL_COM_MODE;
#endif

/** @brief  */
#ifndef HAVE_ENUM_MAN_CTRL_CTRL_MODE
#define HAVE_ENUM_MAN_CTRL_CTRL_MODE
typedef enum MAN_CTRL_CTRL_MODE
{
   MCCM_ABSOLUTE=0, /* absolute beam attitude. | */
   MCCM_RELATIVE=1, /* relative beam attitude. | */
   MAN_CTRL_CTRL_MODE_ENUM_END=2, /*  | */
} MAN_CTRL_CTRL_MODE;
#endif

/** @brief  */
#ifndef HAVE_ENUM_AUTO_TRACE_BEACON_MODE
#define HAVE_ENUM_AUTO_TRACE_BEACON_MODE
typedef enum AUTO_TRACE_BEACON_MODE
{
   ATBM_DVB=0, /* dvb. | */
   ATBM_BEACON=1, /* beacon. | */
   ATBM_RADIO=2, /* radio. | */
   AUTO_TRACE_BEACON_MODE_ENUM_END=3, /*  | */
} AUTO_TRACE_BEACON_MODE;
#endif

/** @brief  */
#ifndef HAVE_ENUM_AUTO_TRACE_GPS_MODE
#define HAVE_ENUM_AUTO_TRACE_GPS_MODE
typedef enum AUTO_TRACE_GPS_MODE
{
   ATGM_AUTO=0, /* Get gps information by auto. | */
   ATGM_MANUAL=1, /* Get gps information by manual. | */
   AUTO_TRACE_GPS_MODE_ENUM_END=2, /*  | */
} AUTO_TRACE_GPS_MODE;
#endif

/** @brief  */
#ifndef HAVE_ENUM_AUTO_TRACE_POLAR_TYPE
#define HAVE_ENUM_AUTO_TRACE_POLAR_TYPE
typedef enum AUTO_TRACE_POLAR_TYPE
{
   ATPT_LEFT=0, /* left polar. | */
   ATPT_RIGHT=1, /* right polar. | */
   AUTO_TRACE_POLAR_TYPE_ENUM_END=2, /*  | */
} AUTO_TRACE_POLAR_TYPE;
#endif

/** @brief  */
#ifndef HAVE_ENUM_BEACON_REQUEST_CMD_E
#define HAVE_ENUM_BEACON_REQUEST_CMD_E
typedef enum BEACON_REQUEST_CMD_E
{
   BRCE_SET_DVB=0, /* set the dvb params. | */
   BRCE_SET_BEACON=1, /* set the beacon params. | */
   BRCE_SET_RADIO=2, /* set the radio params. | */
   BRCE_GET_DVB=3, /* get the dvb params. | */
   BRCE_GET_BEACON=4, /* get the beacon params. | */
   BRCE_GET_RADIO=5, /* get the radio params. | */
   BRCE_GET_SEARCH_TIME=6, /* get the dvb search time. | */
   BRCE_GET_STATUS=7, /* get the dvb status. | */
   BRCE_GET_INFO=8, /* get the dvb information. | */
   BEACON_REQUEST_CMD_E_ENUM_END=9, /*  | */
} BEACON_REQUEST_CMD_E;
#endif

/** @brief  */
#ifndef HAVE_ENUM_BUC_REQUEST_CMD_E
#define HAVE_ENUM_BUC_REQUEST_CMD_E
typedef enum BUC_REQUEST_CMD_E
{
   BRCE_SET_SW=0, /* set the switch. | */
   BRCE_SET_ATT=1, /* set the attenuation. | */
   BRCE_SET_LO=2, /* set the local oscillator. | */
   BRCE_GET_SW=3, /* get the switch status. | */
   BRCE_GET_ATT=4, /* get the attenuation. | */
   BRCE_GET_LO=5, /* get the local oscillator. | */
   BRCE_GET_POWER=6, /* get the output power. | */
   BRCE_GET_TEMP=7, /* get the temperature. | */
   BRCE_GET_GAIN=8, /* get the gain. | */
   BUC_REQUEST_CMD_E_ENUM_END=9, /*  | */
} BUC_REQUEST_CMD_E;
#endif

/** @brief  */
#ifndef HAVE_ENUM_SATS_REQUEST_CMD_E
#define HAVE_ENUM_SATS_REQUEST_CMD_E
typedef enum SATS_REQUEST_CMD_E
{
   SRC_ADD=1, /*  add the satellite. | */
   SRC_DELETE=2, /*  delete the satellite. | */
   SRC_UPDATE=3, /*  update the satellite. | */
   SRC_QUERY=4, /*  query the satellite. | */
   SATS_REQUEST_CMD_E_ENUM_END=5, /*  | */
} SATS_REQUEST_CMD_E;
#endif

/** @brief  */
#ifndef HAVE_ENUM_ATTITUDE_CONTROLLER_MODE
#define HAVE_ENUM_ATTITUDE_CONTROLLER_MODE
typedef enum ATTITUDE_CONTROLLER_MODE
{
   AC_MODE_INIT=0, /* Attitude controller is booting up. | */
   AC_MODE_SEARCH_HOME=1, /* Antenna begin to serach home. | */
   AC_MODE_WAIT_COMPLETED=2, /* Waiting for search home completed. | */
   AC_MODE_SEARCH_COMPLETED=3, /* Antenna serach home completed. | */
   AC_MODE_SYNC_PARAMS=4, /* Synchronizing paramemters. | */
   AC_MODE_RUN=10, /* Attitude controller in run-time. | */
   AC_MODE_RUN_ATTITUDE_CTRL=11, /* System is working in attitude control mode. | */
   AC_MODE_RUN_TILTHOLD_CTRL=12, /* System is working in tilthold control mode. | */
   AC_MODE_STOP=20, /* Attitude controller stop. | */
   AC_MODE_IDLE=30, /* Attitude controller is idle. | */
   AC_MODE_IDLE_WAIT_CMD=31, /* System is idle,and waiting for command. | */
   AC_MODE_IDLE_SYS_ERR=32, /* System is idle,and incur a error. | */
   ATTITUDE_CONTROLLER_MODE_ENUM_END=33, /*  | */
} ATTITUDE_CONTROLLER_MODE;
#endif

/** @brief  */
#ifndef HAVE_ENUM_SATELLITE_TRACKER_MODE
#define HAVE_ENUM_SATELLITE_TRACKER_MODE
typedef enum SATELLITE_TRACKER_MODE
{
   ST_MODE_INIT=0, /* Staellite tracker is booting up. | */
   ST_MODE_INIT_SYNC_PARAMS=1, /* Synchronizing paramemters. | */
   ST_MODE_INIT_WAIT_ATTI=2, /* Waiting for attitude controller ready. | */
   ST_MODE_INIT_COMPLETED=3, /* Staellite tracker is ready. | */
   ST_MODE_RUN=10, /* System is working run-time. | */
   ST_MODE_RUN_SCANNING=11, /* Start signal scan at now. | */
   ST_MODE_RUN_RESCANNING=12, /* Restart signal scan. | */
   ST_MODE_RUN_OPTIMIZING=13, /* Scan Optimized signal. | */
   ST_MODE_STOP=20, /* Stop tracker. | */
   ST_MODE_IDLE=30, /* Stop tracker. | */
   ST_MODE_IDLE_WAIT_CMD=31, /* System is idle,and waiting for command. | */
   ST_MODE_IDLE_SYS_ERR=32, /* System is idle,and incur a error. | */
   SATELLITE_TRACKER_MODE_ENUM_END=33, /*  | */
} SATELLITE_TRACKER_MODE;
#endif

/** @brief  */
#ifndef HAVE_ENUM_SATELLITE_TRACKER_REQUEST
#define HAVE_ENUM_SATELLITE_TRACKER_REQUEST
typedef enum SATELLITE_TRACKER_REQUEST
{
   REQUEST_SAT_STOM=0, /* Invalid request. | */
   REQUEST_SCAN_SAT_STOM_ORBIT=1, /* Scan target satellite with orbit. | */
   REQUEST_SET_SAT_STOM_TARGET=2, /* Set target satellite with angle. | */
   REQUEST_SAT_SITS=10, /* Invalid request. | */
   REQUEST_RESCAN_SAT_SITS_ORBIT=11, /* Restart signal scan. | */
   REQUEST_SCAN_SAT_SITS_ORBIT=12, /* Start signal scan at now. | */
   REQUEST_SET_SAT_SITS_TARGET=13, /* Set target satellite with angle. | */
   REQUEST_SWAP_STOP=20, /* Stop tracker. | */
   REQUEST_SWAP_IDLE=30, /* Invalid request. | */
   REQUEST_SWAP_IDLE_WAIT_CMD=31, /* Swap to idle,and waiting for command. | */
   SATELLITE_TRACKER_REQUEST_ENUM_END=32, /*  | */
} SATELLITE_TRACKER_REQUEST;
#endif

// MAVLINK VERSION

#ifndef MAVLINK_VERSION
#define MAVLINK_VERSION 2
#endif

#if (MAVLINK_VERSION == 0)
#undef MAVLINK_VERSION
#define MAVLINK_VERSION 2
#endif

// MESSAGE DEFINITIONS
#include "./mavlink_msg_heartbeat.h"
#include "./mavlink_msg_motor_status.h"
#include "./mavlink_msg_attitude_body.h"
#include "./mavlink_msg_attitude_beam_target.h"
#include "./mavlink_msg_attitude_beam.h"
#include "./mavlink_msg_raw_imu.h"
#include "./mavlink_msg_rtk_gps.h"
#include "./mavlink_msg_humiture.h"
#include "./mavlink_msg_beacon_power.h"
#include "./mavlink_msg_pricise_imu.h"
#include "./mavlink_msg_attitude_body_data.h"
#include "./mavlink_msg_attitude_body_debug.h"
#include "./mavlink_msg_kalman_data_x.h"
#include "./mavlink_msg_kalman_data_z.h"
#include "./mavlink_msg_att_body_data.h"
#include "./mavlink_msg_att_body_debug.h"
#include "./mavlink_msg_kf_xk_p1.h"
#include "./mavlink_msg_kf_xk_p2.h"
#include "./mavlink_msg_kf_p0q.h"
#include "./mavlink_msg_kf_zk.h"
#include "./mavlink_msg_kf_other.h"
#include "./mavlink_msg_tracker_status.h"
#include "./mavlink_msg_buc_status.h"
#include "./mavlink_msg_gnss_data.h"
#include "./mavlink_msg_fo_gyro.h"
#include "./mavlink_msg_beacon_request.h"
#include "./mavlink_msg_beacon_response.h"
#include "./mavlink_msg_mavlink_comm_ctrl.h"
#include "./mavlink_msg_buc_request.h"
#include "./mavlink_msg_buc_response.h"
#include "./mavlink_msg_sats_request.h"
#include "./mavlink_msg_motor_ctrl.h"
#include "./mavlink_msg_manual_control.h"
#include "./mavlink_msg_auto_trace.h"
#include "./mavlink_msg_downlink_params.h"
#include "./mavlink_msg_uplink_params.h"
#include "./mavlink_msg_reserve_debug.h"
#include "./mavlink_msg_adrc_tuning.h"
#include "./mavlink_msg_pid_tuning.h"

// base include


#undef MAVLINK_THIS_XML_IDX
#define MAVLINK_THIS_XML_IDX 0

#if MAVLINK_THIS_XML_IDX == MAVLINK_PRIMARY_XML_IDX
# define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_MOTOR_STATUS, MAVLINK_MESSAGE_INFO_ATTITUDE_BODY, MAVLINK_MESSAGE_INFO_ATTITUDE_BEAM_TARGET, MAVLINK_MESSAGE_INFO_ATTITUDE_BEAM, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RTK_GPS, MAVLINK_MESSAGE_INFO_HUMITURE, MAVLINK_MESSAGE_INFO_BEACON_POWER, MAVLINK_MESSAGE_INFO_PRICISE_IMU, MAVLINK_MESSAGE_INFO_ATTITUDE_BODY_DATA, MAVLINK_MESSAGE_INFO_ATTITUDE_BODY_DEBUG, MAVLINK_MESSAGE_INFO_KALMAN_DATA_X, MAVLINK_MESSAGE_INFO_KALMAN_DATA_Z, MAVLINK_MESSAGE_INFO_ATT_BODY_DATA, MAVLINK_MESSAGE_INFO_ATT_BODY_DEBUG, MAVLINK_MESSAGE_INFO_KF_XK_P1, MAVLINK_MESSAGE_INFO_KF_XK_P2, MAVLINK_MESSAGE_INFO_KF_P0Q, MAVLINK_MESSAGE_INFO_KF_ZK, MAVLINK_MESSAGE_INFO_KF_OTHER, MAVLINK_MESSAGE_INFO_TRACKER_STATUS, MAVLINK_MESSAGE_INFO_BUC_STATUS, MAVLINK_MESSAGE_INFO_GNSS_DATA, MAVLINK_MESSAGE_INFO_FO_GYRO, MAVLINK_MESSAGE_INFO_BEACON_REQUEST, MAVLINK_MESSAGE_INFO_BEACON_RESPONSE, MAVLINK_MESSAGE_INFO_MAVLINK_COMM_CTRL, MAVLINK_MESSAGE_INFO_BUC_REQUEST, MAVLINK_MESSAGE_INFO_BUC_RESPONSE, MAVLINK_MESSAGE_INFO_SATS_REQUEST, MAVLINK_MESSAGE_INFO_MOTOR_CTRL, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_AUTO_TRACE, MAVLINK_MESSAGE_INFO_DOWNLINK_PARAMS, MAVLINK_MESSAGE_INFO_UPLINK_PARAMS, MAVLINK_MESSAGE_INFO_RESERVE_DEBUG, MAVLINK_MESSAGE_INFO_ADRC_TUNING, MAVLINK_MESSAGE_INFO_PID_TUNING}
# define MAVLINK_MESSAGE_NAMES {{ "ADRC_TUNING", 251 }, { "ATTITUDE_BEAM", 14 }, { "ATTITUDE_BEAM_TARGET", 13 }, { "ATTITUDE_BODY", 12 }, { "ATTITUDE_BODY_DATA", 20 }, { "ATTITUDE_BODY_DEBUG", 21 }, { "ATT_BODY_DATA", 24 }, { "ATT_BODY_DEBUG", 25 }, { "AUTO_TRACE", 201 }, { "BEACON_POWER", 18 }, { "BEACON_REQUEST", 170 }, { "BEACON_RESPONSE", 171 }, { "BUC_REQUEST", 173 }, { "BUC_RESPONSE", 174 }, { "BUC_STATUS", 32 }, { "DOWNLINK_PARAMS", 202 }, { "FO_GYRO", 34 }, { "GNSS_DATA", 33 }, { "HEARTBEAT", 0 }, { "HUMITURE", 17 }, { "KALMAN_DATA_X", 22 }, { "KALMAN_DATA_Z", 23 }, { "KF_OTHER", 30 }, { "KF_P0Q", 28 }, { "KF_XK_P1", 26 }, { "KF_XK_P2", 27 }, { "KF_ZK", 29 }, { "MANUAL_CONTROL", 200 }, { "MAVLINK_COMM_CTRL", 172 }, { "MOTOR_CTRL", 180 }, { "MOTOR_STATUS", 11 }, { "PID_TUNING", 255 }, { "PRICISE_IMU", 19 }, { "RAW_IMU", 15 }, { "RESERVE_DEBUG", 250 }, { "RTK_GPS", 16 }, { "SATS_REQUEST", 175 }, { "TRACKER_STATUS", 31 }, { "UPLINK_PARAMS", 203 }}
# if MAVLINK_COMMAND_24BIT
#  include "../mavlink_get_info.h"
# endif
#endif

#ifdef __cplusplus
}
#endif // __cplusplus
#endif // MAVLINK_FPPA_H
